package cn.dengta.webapp.user.dto;

import java.io.Serializable;

import cn.dengta.common.model.BizFlag;
import cn.dengta.common.util.Common;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import me.codeplayer.util.*;

@Getter
@Setter
@Accessors(chain = true)
public class AgentInfoDTO implements Serializable {

	/** 类型：{@link AgentType} */
	private Integer type;
	/** 级别：{@link AgentLevel} */
	private Integer level;
	/** 类型业务标识：1v1，直播 */
	private Long liveFlag;

	public static String serializeInfo(Integer level, Integer type, Long liveFlag) {
		return level + Common.SEP + type + Common.SEP + liveFlag;
	}

	public static AgentInfoDTO parseInfo(String info) {
		if (StringUtil.isEmpty(info)) {
			return null;
		}
		final Integer[] ints = Common.splitAsInts(info);
		return X.isValid(ints) ? new AgentInfoDTO().setLevel(ints[0]).setType(ints[1]).setLiveFlag(NumberUtil.getLong(ints[2])) : null;
	}

	/** 1v1类型 */
	public boolean hasChatFlag() {
		return liveFlag != null && BizFlag.hasFlag(liveFlag, 1L);
	}

	/** 直播类型 */
	public boolean hasLiveFlag() {
		return liveFlag != null && BizFlag.hasFlag(liveFlag, 1L << 1);
	}

}
